package com.zhl.scheduling.common.manger;

import com.zhl.scheduling.model.bo.LoginStatusBO;

import javax.servlet.http.HttpSession;

/**
 * @Author: ZhangLu In DLUT
 * @since: 1.0.0
 * @Description: 进行登录状态管理的类
 */
public class LoginStatusManager {
    private static final String SESSION_USER_STATUS = "user_status";

    /**
     * 设置用户登录系统的状态
     * @param session 浏览器携带的session数据
     * @param loginStatus 登录状态实体类
     */
    public static void setLoginStatus(HttpSession session, LoginStatusBO loginStatus) {
        session.setAttribute(SESSION_USER_STATUS, loginStatus);
    }

    /**
     * 获取用户登录的相关状态信息
     * @param session 浏览器携带的会话数据，访问服务器中的用户登录信息
     * @return LoginStatusBO 封装用户登录状态的实体类
     */
    public static LoginStatusBO getLoginStatus(HttpSession session) {
        LoginStatusBO loginStatus = (LoginStatusBO) session.getAttribute(SESSION_USER_STATUS);
        if (loginStatus == null) {
            loginStatus = new LoginStatusBO();
            setLoginStatus(session, loginStatus);
        }
        return loginStatus;
    }
}
